#ifndef InputManager_h__
#define InputManager_h__
#pragma once

#include <SDL.h>
#include <vector>

namespace le
{
	class InputListener;
}

namespace le
{
	class InputManager
	{
	public:
		InputManager();
		virtual ~InputManager();

		void AddInputListener(le::InputListener* inputListener);
		void RemoveInputListener(le::InputListener* inputListener);

		// You can take an input event very broad. This can be from key presses/text input/finger input/..
		void OnInputEvent(const SDL_Event& inputEvent);

	private:
		std::vector<le::InputListener*> m_Listeners;
	};
}

#endif // InputManager_h__